ewMenüs

Einleitung

Die Skriptsammlung ewMenüs von Udo Egner-Walter ist eine Skriptsammlung für den Screenreader JAWS der Firma Freedom Scientific. Die Sammlung beinhaltet Skripts zum Erstellen und Verwenden virtueller Menüs. Skriptentwickler können mit dieser Skriptsammlung eigene virtuelle Menüs erstellen und diese anderen Anwendern zur Verfügung stellen. Anwender erhalten mit dieser Skriptsammlung bereits erstellte Menüs, die weiter unten ausführlich beschrieben werden.

Dies ist keine offizielle Skriptsammlung der Firma Freedom Scientific, den Entwicklern von JAWS. Alle enthaltenen Scripts wurden ausgiebig getestet. Dennoch kann es vorkommen, dass Skripts nicht ordnungsgemäß funktionieren. Ich weise Sie deshalb ausdrücklich darauf hin, dass Sie diese Skriptsammlung auf eigene Gefahr benutzen und der Autor keine Haftung für die Skripts dieser Sammlung übernimmt, ebenso keine Haftung für Schäden durch die Verwendung der Skripts oder falsch verstandener Anwendung der Skriptsammlung.

Weitere Infos zur Benutzung dieser Skriptsammlung entnehmen Sie bitte dem Abschnitt Copyright.

Udo Egner-Walter, März 2020

Systemvoraussetzungen

Folgende Voraussetzungen sind nötig, um diese Skriptsammlung nutzen zu können:

Diese Skriptsammlung von Udo Egner-Walter ist lizensiert unter der Creative Commons Namensnennung-Nicht kommerziell 4.0 International

Dies ist eine allgemeinverständliche Zusammenfassung der Lizenz (die diese nicht ersetzt).

Haftungsbeschränkung

Sie dürfen:

Der Lizenzgeber kann diese Freiheiten nicht widerrufen solange Sie sich an die Lizenzbedingungen halten.

Unter folgenden Bedingungen:

Hinweise

Sie müssen sich nicht an diese Lizenz halten hinsichtlich solcher Teile des Materials, die gemeinfrei sind, oder soweit Ihre Nutzungshandlungen durch Ausnahmen und Schranken des Urheberrechts gedeckt sind.

Es werden keine Garantien gegeben und auch keine Gewähr geleistet. Die Lizenz verschafft Ihnen möglicherweise nicht alle Erlaubnisse, die Sie für die jeweilige Nutzung brauchen. Es können beispielsweise andere Rechte wie Persönlichkeits- und Datenschutzrechte zu beachten sein, die Ihre Nutzung des Materials entsprechend beschränken.

Quelle: https://creativecommons.org/licenses/by-nc/4.0/deed.de

Danksagung

Persönlich bedanken möchte ich mich vor allen bei folgenden Testern (alphabetisch):

Vielen Dank für eure Rückmeldungen und Vorschläge.

Weiter gilt mein Dank all den Testern, die ich vergessen habe zu erwähnen oder die hier nicht erwähnt werden wollten. Auch euch vielen Dank fürs Testen.

Ganz herzlich bedanken möchte ich mich auch bei René Ludwig, der es ermöglicht hat, dass die Skriptsammlung auf der deutschen JAWS-Seite zum Download angeboten werden kann.

Vielen Dank euch allen!

History

2020-04

Folgendes wurde in dieser Version geändert:

2020-03

Erste Veröffentlichung. Enthaltene Skripts:

Installationsanleitung

Vorbemerkung

Diese Skriptsammlung umfasst folgende Dateien:

a) Kopieren ins Anwenderskriptverzeichnis

Der erste Schritt besteht darin, die oben genannten Dateien in das Anwenderskriptverzeichnis zu kopieren.

Gehen Sie hierzu wie folgt vor:

Hinweis

Falls Sie auf die eben beschriebene Weise nicht in Ihr Anwenderskriptverzeichnis gelangen können, so können Sie alternativ so vorgehen:

  1. Öffnen Sie mit Windows+R den Ausführen-Dialog
  2. Tippen Sie %Appdata% in das Eingabefeld und bestätigen Sie dies mit der Eingabe-Taste (achten Sie bitte auf die Prozentzeichen vor und nach dem Wort)
  3. Suchen Sie im nun geöffneten Explorer-Fenster der Reihe nach folgende Ordner aus und bestätigen Sie diese jeweils mit der Eingabe-Taste:

Sie befinden sich nun in Ihrem Anwenderskriptverzeichnis, in welches Sie die o. g. Dateien kopieren können.

Achtung!

Überschreiben Sie vorhandene Dateien nur, wenn Sie ältere Skripts durch eine neuere Version ersetzen möchten.

b) MyExtensions

Bei der Datei MyExtensions.jss handelt es sich um eine Anwenderskriptdatei, die von den JAWS-Entwicklern für eigene Skripts zur Verfügung gestellt wird. Sollte in Ihrem Anwenderskriptverzeichnis bereits eine Datei namens MyExtensions.jss existieren, so öffnen Sie diese mit dem Windows-Editor und fügen Sie folgenden Eintrag am Ende ein:

use "ewMenus.jsb"

Sollte die Datei MyExtensions.jss noch nicht existieren, so benennen Sie die Datei:

ewMenus (myExtensions).jss

um in die Datei:

MyExtensions.jss

c) Kompilieren des Quellcodes

Damit JAWS die Skripts nutzen kann, muss der Code vorher kompiliert werden, das heißt in ein für JAWS verwendetes Format übersetzt werden. Da diese Übersetzung von JAWS-Version zu JAWS-Version unterschiedlich ist, muss man dies für die jeweilige JAWS-Version von Hand erledigen. Die einzelnen Schritte sind wie folgt:

  1. Drücken Sie JAWS-Taste+F2
  2. Wählen Sie Skriptmanager aus und bestätigen Sie mit der Eingabetaste
  3. Drücken Sie Strg+O, um eine Datei zu öffnen
  4. Suchen Sie die Datei ewMenus.jss aus und öffnen Sie diese
  5. Drücken Sie Strg+S, um die Datei zu kompilieren
  6. Drücken Sie erneut Strg+O, um eine weitere Datei zu öffnen
  7. Suchen Sie die Datei MyExtensions.jss aus und öffnen Sie diese
  8. Drücken Sie Strg+S, um die Datei zu kompilieren
  9. Schließen Sie den Skriptmanager mit Alt+F4

d) Tastenzuordnungen für die Skripts erstellen

Vorbemerkung

Im Folgenden müssen Dateien auf Ihrer Festplatte umbenannt werden. Dies funktioniert jedoch nur, wenn im Windows Explorer alle Dateiendungen eingeblendet sind. Sie können die Dateiendungen im Explorer ein-/ausblenden, indem Sie folgende Tasten drücken: Alt-Taste, dann A, dann H, dann F.

Prüfen Sie, ob die Datei Default.jkm bereits existiert. Falls die Datei nicht existiert, so benennen Sie die Datei:

ewMenus (Default).jkm

um in die Datei:

Default.jkm

Falls die Datei Default.jkm bereits existiert, so gehen Sie bitte wie folgt vor:

  1. Benennen Sie die Datei ewMenus (Default).jkm um in ewMenus (Default).txt
  2. Öffnen Sie diese Datei
  3. Löschen Sie die erste Zeile [Common Keys] komplett, so dass der erste Eintrag Shift+Space&m&Escape=ExitMenuLayer lautet
  4. Markieren Sie den Dateiinhalt mit Strg+A und kopieren Sie den Inhalt mit Strg+C in die Zwischenablage
  5. Öffnen Sie Ihr Anwenderskriptverzeichnis wie im Abschnitt a) Kopieren ins Anwenderskriptverzeichnis beschrieben
  6. Benennen Sie die Datei: Default.jkm um in die Datei: Default.txt.
  7. Öffnen Sie diese Datei
  8. Suchen Sie den Abschnitt [Common Keys]
  9. Gehen Sie ans Ende dieser Zeile und machen dort eine Zeilenschaltung
  10. Fügen Sie nun mit Strg+V den Inhalt der Zwischenablage in die neu erstellte leere Zeile ein
  11. Speichern Sie mit Strg+S und beenden Sie den Editor
  12. Benennen Sie nun die Datei Default.txt um in Default.jkm

Falls sie die Anwendung Word verwenden und die klassischen Menüs verwenden möchten, so prüfen Sie, ob die Datei word.jkm bereits existiert. Falls die Datei nicht existiert, so benennen Sie die Datei:

ewMenus (Word).jkm

um in die Datei:

Word.jkm

Achtung!

Wenn Sie eine Word-Version vor der Version 2016 verwenden, so müssen Sie statt Word.jkm den Dateinamen WordClassic.jkm verwenden.

Falls die Datei Word.jkm bereits existiert, so gehen Sie bitte wie folgt vor:

  1. Benennen Sie die Datei ewMenus (Word).jkm um in ewMenus (Word).txt
  2. Öffnen Sie diese Datei
  3. Kopieren Sie den Eintrag Shift+Space&m&w*=StartWordMenu in die Zwischenablage
  4. Öffnen Sie Ihr Anwenderskriptverzeichnis wie im Abschnitt a) Kopieren ins Anwenderskriptverzeichnis beschrieben
  5. Benennen Sie die Datei: Word.jkm um in die Datei: Word.txt.
  6. Öffnen Sie diese Datei
  7. Suchen Sie den Abschnitt [Common Keys]
  8. Gehen Sie ans Ende dieser Zeile und machen dort eine Zeilenschaltung
  9. Fügen Sie nun mit Strg+V den Inhalt der Zwischenablage in die neu erstellte leere Zeile ein
  10. Speichern Sie mit Strg+S und beenden Sie den Editor
  11. Benennen Sie nun die Datei Word.txt um in Word.jkm

Falls sie die Anwendung Google Chrome verwenden und die Menüs dort verwenden möchten, so prüfen Sie, ob die Datei Chrome.jkm bereits existiert. Falls die Datei nicht existiert, so benennen Sie die Datei:

ewMenus (Chrome).jkm

um in die Datei:

Chrome.jkm

Falls die Datei Chrome.jkm bereits existiert, so gehen Sie bitte wie folgt vor:

  1. Benennen Sie die Datei ewMenus (Chrome).jkm um in ewMenus (Chrome).txt
  2. Öffnen Sie diese Datei
  3. Kopieren Sie den Eintrag Shift+Space&m&D*=StartChromeMenu in die Zwischenablage
  4. Öffnen Sie Ihr Anwenderskriptverzeichnis wie im Abschnitt a) Kopieren ins Anwenderskriptverzeichnis beschrieben
  5. Benennen Sie die Datei: Chrome.jkm um in die Datei: Chrome.txt.
  6. Öffnen Sie diese Datei
  7. Suchen Sie den Abschnitt [Common Keys]
  8. Gehen Sie ans Ende dieser Zeile und machen dort eine Zeilenschaltung
  9. Fügen Sie nun mit Strg+V den Inhalt der Zwischenablage in die neu erstellte leere Zeile ein
  10. Speichern Sie mit Strg+S und beenden Sie den Editor
  11. Benennen Sie nun die Datei Chrome.txt um in Chrome.jkm

Falls sie die Anwendung Microsoft Edge auf Chromium-Basis verwenden und die Menüs dort verwenden möchten, so prüfen Sie, ob die Datei msedge.jkm bereits existiert. Falls die Datei nicht existiert, so benennen Sie die Datei:

ewMenus (Edge).jkm

um in die Datei:

msedge.jkm

Falls die Datei msedge.jkm bereits existiert, so gehen Sie bitte wie folgt vor:

  1. Benennen Sie die Datei ewMenus (Edge).jkm um in ewMenus (Edge).txt
  2. Öffnen Sie diese Datei
  3. Kopieren Sie den Eintrag Shift+Space&m&D*=StartChromeMenu in die Zwischenablage
  4. Öffnen Sie Ihr Anwenderskriptverzeichnis wie im Abschnitt a) Kopieren ins Anwenderskriptverzeichnis beschrieben
  5. Benennen Sie die Datei: msedge.jkm um in die Datei: msedge.txt.
  6. Öffnen Sie diese Datei
  7. Suchen Sie den Abschnitt [Common Keys]
  8. Gehen Sie ans Ende dieser Zeile und machen dort eine Zeilenschaltung
  9. Fügen Sie nun mit Strg+V den Inhalt der Zwischenablage in die neu erstellte leere Zeile ein
  10. Speichern Sie mit Strg+S und beenden Sie den Editor
  11. Benennen Sie nun die Datei msedge.txt um in msedge.jkm

Nun können Sie die Skripts verwenden.

Ausführliche Beschreibung der Skripts

Die Skriptsammlung enthält sowohl Skripts und Funktionen, um eigene Menüs zu erstellen, als auch bereits vorgefertigte Menüs. Zuerst folgen ein paar allgemeine Hinweise zum Verwenden der Menüs, dann eine Auflistung der vorgefertigten Menüs und zum Schluss eine Anleitung, um eigene Menüs zu erstellen.

1. Allgemeine Hinweise zum Verwenden der Menüs

Um ein Menü aufzurufen, verwenden Sie die Tastenfolge Umschalt+Leertaste, gefolgt von M. Nun können Sie eine der folgenden Tasten verwenden, um ein bestimmtes Menü zu öffnen:

Die Menüs sind nun so lange geöffnet, bis Sie die Schaltfläche ESC zum Schließen der Menüs drücken. Beim Start und Beenden der virtuellen Menüs ertönt ein Ton, damit Sie erkennen können, dass die Menüs am Bildschirm aktiv sind.

Wenn die Menüs geöffnet sind, so können Sie die Pfeiltasten verwenden, um sich durch die Menüs zu bewegen. Folgende Tasten sind hierbei verfügbar:

2. Vorgefertigte Menüs

Menü für Steuerelemente:

Standardtaste: Umschalt+Leertaste, gefolgt von M, dann C
Beschreibung: Die Steuerelemente einer Anwendung werden in einem Menü aufgelistet.

Das Skript sucht nach allen Steuerelementen der Anwendung. In der Menüleiste werden die Steuerelemente dann nach Gruppen geordnet. So werden in einem Menü - falls vorhanden - alle Schaltflächen mit ihrem Namen aufgelistet, in einem anderen Menü alle Registerkarten usw. Wenn Sie ein Menü mit der Pfeil-ab-Taste aufklappen, so stehen dort die Steuerelemente dieser Gruppe mit ihrem Namen als Menüeinträge. Wenn Sie ein Menüeintrag mit dem gesuchten Namen ausgewählt haben, können Sie die Eingabetaste drücken, um das Steuerelement in Ihrer Anwendung zu fokussieren.

Menü für Windows-Systemsteuerungs-Dialoge:

Standardtaste: Umschalt+Leertaste, gefolgt von M, dann E
Beschreibung: Das Menü listet viele der in Windows 10 bekannten Systemsteuerung-Einstellungsdialoge auf und führt diese aus. Das Menü enthält 16 Menüs mit insgesamt 120 Menüeinträgen. Des Weiteren 2 Menüeinträge mit 16 Einträgen zum Öffnen häufig verwendeter Windows-Ordner wie zum Beispiel Autostart, Startmenü und so weiter

Das Menü enthält die Einträge:

Menü für Favoriten:

Standardtaste: Umschalt+Leertaste, gefolgt von M, dann F
Beschreibung: In dem Menü wird für jeden gefundenen Ordner im Favoriten-Menü ein eigenes Menü erzeugt. Als Menü-Einträge werden die gefundenen Internet-Verknüpfungen eingefügt.

Menü für JAWS-Funktionen:

Standardtaste: Umschalt+Leertaste, gefolgt von M, dann J
Beschreibung: Es werden einige JAWS-Funktionen in Menü-Form dargestellt.Das Menü enthält 7 Menüs mit insgesamt 40 Einträgen.

Das Menü enthält die Einträge:

Menü zum Einfügen von Emojis in Text:

Standardtaste: Umschalt+Leertaste, gefolgt von M, dann O
Beschreibung: In diesem Menü werden Emojis in diversen Kategorien angezeigt. Wenn Sie ein Emoji mit der Eingabetaste auswählen, wird dieses an der Cursorposition Ihres Textes eingefügt. Das Menü enthält 7 Menüs mit insgesamt 83 Untermenüs:

Menü zum Einfügen von Symbolen in Text:

Standardtaste: Umschalt+Leertaste, gefolgt von M, dann S
Beschreibung: In diesem Menü werden Windows-Symbole nach Kategorien angezeigt. Wenn Sie auf einem Menü-Eintrag ein Symbol mit der Eingabetaste auswählen, wird dieses an der Cursorposition Ihres Textes eingefügt. Das Menü enthält 13 Menüs mit 374 Einträgen.

Menü mit Symbolen der Taskleiste und des Infobereichs:

Standardtaste: Umschalt+Leertaste, gefolgt von M, dann T
Beschreibung: In diesem Menü werden Menüelemente im Zusammenhang mit der Taskleiste erzeugt.

Klassische Word-Menüs:

Standardtaste: Umschalt+Leertaste, gefolgt von M, dann W
Beschreibung: Drücken Sie diese Tastenkombination in Word, um die klassischen Word-Menüs zu verwenden.

Die Menüs sind weitestgehend mit den klassischen Word-Menüs identisch und führen in Word die entsprechende Aktion aus. Durch programmiertechnische Vorgaben kann es vorkommen, dass die Befehle hier etwas verlangsamt ausgeführt werden. Folgende 7 Menüs sind enthalten:

Google Chrome- und Edge-Menüs:

Standardtaste: Umschalt+Leertaste, gefolgt von M, dann D
Beschreibung: Drücken Sie diese Tastenkombination in Chrome bzw. Edge auf Chromium-Basis, um ein Menü mit Befehlen zu erhalten.

Viele Menüpunkte sind sowohl in Chrome als auch im Edge identisch und unterscheiden sich nur in einigen wenigen Punkten. Das Menü enthält:

3. Eigene Menüs erstellen

Vorbemerkung

Wenn Sie möchten, können Sie sich mit ewMenüs Ihre eigene kleine Menüsammlung erstellen. So können Sie zum Beispiel Menüs erstellen,

Ihrer Phantasie sind hier keine Grenzen gesetzt. mit all diesen Funktionen können Sie:

Grundsätzliche Schritte, um eigene Menüs zu erstellen:

Achtung!

Sie können zwar Menü-Skripts in die ewMenus-Skriptdatei einfügen, jedoch werden Ihre eigenen Skripts nach einem Skriptupdate ggf. dann überschrieben. Deshalb beschreibe ich hier nur den Weg über externe, eigene Skriptdateien.

Folgende Schritte sind nötig, um eigene Menü-Skripts zu erstellen:

Hier ein komplettes Beispiel einer Skriptdatei, die Menüs nutzen möchte:

; Include-Anweisungen
Include "HjGlobal.jsh"
Include "hjconst.jsh"
include "MSAAConst.jsh"
include "UIA.jsh"

; Ihre Use-Dateien, z. B. 
use "Default.jsb"
; ... weitere USE-Anweisungen  
; ewMenus einbinden 
use "ewMenus.jsb" 

; globale Variablen 
globals 
object goXML, 
int giMenus 

; Skriptdatei 
Script StartTestMenu()

; Diese Zeilen einfügen, damit Buchstaben als 
; Kurztasten funktionieren 
if giMenus then
PerformScript FindChar(GetCurrentScriptKeyName ())
Return
EndIf 

; Neue Menüleiste erstellen 
NewXMLMenu ("Mein Menü")

; Neues Menü hinzufügen
CreateMenu ("Erstes Menü")
; zwei Einträge hinzufügen 
       CreateMenuEntry ("Eintrag 1", "", "BEFEHL", "PARAMETER")
       CreateMenuEntry ("Eintrag 2", "", "BEFEHL", "PARAMETER")
       ; Menüeintrag als Hinweis auf ein Untermenü einfügen 
       CreateMenuEntry ("Untermenüname", "", "submenu", "")
             ; Untermenüeintrag hinzufügen 
             CreateSubMenuEntry ("Erstes Untermenü", "", "BEFEHL", "PARAMETER")
; weiter Menüs, Menüeinträge und Untermenüeinträge einfügen 

; Menü anzeigen 
StartMenuLayer()
EndScript 

Als nächstes Müssen Sie Ihrem Menü Tasten zuordnen. Hierbei reicht es nicht aus, dem Skript eine einzige Taste zuzuordnen, denn das Skript benötigt zudem Tasten zum Beenden des Menüs, zum Auf- und Zuklappen von Menüs und so weiter.

Der einfachste Weg, Ihrem neuen Menü eine Taste zuzuordnen ist folgender:

Alle relevanten Skripts der Sammlung sowie integrierte Befehle für die Menüs und deren Aufrufparameter

Da Sie nun wissen, wie man eigene Menüs erstellt und mit Tasten aufruft, folgt in diesem Abschnitt nun die Auflistung der relevanten Skripts sowie die integrierten Befehle und deren Aufrufparameter. Für jedes Skript steht ein kleines Beispiel zur Verfügung:

NewXmlMenu (optional string sName)

Der Befehl NewXmlMen leitet ein neues Menü ein. Sie können mit dem optionalen Parameter sName angeben, ob das Menü einen Namen bekommt, der beim Aufrufen des Menüs von JAWS gesprochen wird.

Im folgenden Beispiel wird ein Menü mit dem Namen Editor-Menü erstellt:

; ewMenus einbinden 
use "ewMenus.jsb" 

; globale Variablen 
globals 
object goXML, 
int giMenus 

; Skriptdatei 
Script StartNotepadMenu()

; Diese Zeilen einfügen, damit Buchstaben als Kurztasten funktionieren 
if giMenus then
PerformScript FindChar(GetCurrentScriptKeyName ())
Return
EndIf 

; Neue Menüleiste erstellen 
NewXMLMenu ("Editor-Menü")

; Neues Menü namens "Datei" hinzufügen
CreateMenu ("Datei")
; Eintrag hinzufügen (Schreiben der Tastenfolge "Hallo Welt")
CreateMenuEntry ("Schreibe Hallo Welt", "", "function", "TypeString|Hallo Welt")
; ... ggf. weitere Menübefehle hier einfügen 
; Menü anzeigen 
StartMenuLayer()
EndScript 

CreateMenu (string sMenuname)

Der Befehl CreateMenu fügt der Menüleiste einen neuen Eintrag hinzu. Mit dem Parameter sMenuname vergeben Sie den Namen des Menüs in der Menüleiste.

Im folgenden Beispiel wird ein Menüleisten-Eintrag mit dem Namen Datei erstellt:

; ewMenus einbinden 
use "ewMenus.jsb" 

; globale Variablen 
globals 
object goXML, 
int giMenus 

; Skriptdatei 
Script StartNotepadMenu()

; Diese Zeilen einfügen, damit Buchstaben als Kurztasten funktionieren 
if giMenus then
PerformScript FindChar(GetCurrentScriptKeyName ())
Return
EndIf 

; Neue Menüleiste erstellen 
NewXMLMenu ("Editor-Menü")

; Neues Menü namens "Datei" hinzufügen
CreateMenu ("Datei")
; Eintrag hinzufügen (Schreiben der Tastenfolge "Hallo Welt")
CreateMenuEntry ("Schreibe Hallo Welt", "", "function", "TypeString|Hallo Welt")
; ... ggf. weitere Menübefehle hier einfügen 
; Menü anzeigen 
StartMenuLayer()
EndScript 

CreateMenu (string sMenuname)

Der Befehl CreateMenu fügt der Menüleiste einen neuen Eintrag hinzu. Mit dem Parameter sMenuname vergeben Sie den Namen des Menüs in der Menüleiste.

Im folgenden Beispiel wird ein Menüleisten-Eintrag mit dem Namen Datei erstellt:

; ewMenus einbinden 
use "ewMenus.jsb" 

; globale Variablen 
globals 
object goXML, 
int giMenus 

; Skriptdatei 
Script StartNotepadMenu()

; Diese Zeilen einfügen, damit Buchstaben als Kurztasten funktionieren 
if giMenus then
PerformScript FindChar(GetCurrentScriptKeyName ())
Return
EndIf 

; Neue Menüleiste erstellen 
NewXMLMenu ("Editor-Menü")

; Neues Menü namens "Datei" hinzufügen
CreateMenu ("Datei")
; Eintrag hinzufügen (Schreiben der Tastenfolge "Hallo Welt")
CreateMenuEntry ("Schreibe Hallo Welt", "", "function", "TypeString|Hallo Welt")
; ... ggf. weitere Menübefehle hier einfügen 
; Menü anzeigen 
StartMenuLayer()
EndScript 

CreateMenuEntry (string sMenuEntryName, string sShortcut, string sCommand, string sParam)

Der Befehl CreateMenuEntry fügt dem aktuellen Menüleisten-Element einen neuen Menüeintrag hinzu. Folgende Parameter sind hierbei vorhanden:

Im folgenden Beispiel wird in der Menüleiste dem Menübefehl Datei ein neuer Menüeintrag mit dem Namen Schreibe Hallo Welt hinzugefügt. Dem Parameter sShortcut wird eine leere Zeicvhenkette übergeben, da der Menübefehl weder in JAWS noch im Anwendungsprogramm durch eine Tastenkombination gestartet werden kann. Im Parameter sCommand wird die Zeichenkette function übergeben, da eine JAWS-Funktion ausgeführt werden soll. Im letzten Parameter sParam wird zuerst als Parameter der Name der Funktion übergeben, nämlich TypeString. Da diese JAWS-Funktion selbst einen Parameter erwartet, nämlich den zu schreibenden Text, wird nach dem Funktionsnamen TypeString durch einen senkrechten Strich getrennt der zu schreibende Text übergeben, nämlöich Hallo Welt

; ewMenus einbinden 
use "ewMenus.jsb" 

; globale Variablen 
globals 
object goXML, 
int giMenus 

; Skriptdatei 
Script StartNotepadMenu()

; Diese Zeilen einfügen, damit Buchstaben als Kurztasten funktionieren 
if giMenus then
PerformScript FindChar(GetCurrentScriptKeyName ())
Return
EndIf 

; Neue Menüleiste erstellen 
NewXMLMenu ("Editor-Menü")

; Neues Menü namens "Datei" hinzufügen
CreateMenu ("Datei")
; Eintrag hinzufügen (Schreiben der Tastenfolge "Hallo Welt")
CreateMenuEntry ("Schreibe Hallo Welt", "", "function", "TypeString|Hallo Welt")
; ... ggf. weitere Menübefehle hier einfügen 
; Menü anzeigen 
StartMenuLayer()
EndScript 

CreateSubMenuEntry (string sMenuEntryName, string sShortcut, string sCommand, string sParam)

Der Befehl CreateSubMenuEntry hat die gleichen Parameter wie CreateMenuEntry. Um ein Untermenü zu erstellen, muss vor dem Befehl noch folgende Zeile eingefügt werden:

CreateMenuEntry ("NAME DES EINTRAGES", "", "submenu", "")

Parameter von CreateSubMenuEntry:

Im folgenden Beispiel werden in der Menüleiste dem Menübefehl Tiere mehrere neue Untermenüeinträge hinzugefügt:

; ewMenus einbinden 
use "ewMenus.jsb" 

; globale Variablen 
globals 
object goXML, 
int giMenus 

; Skriptdatei 
Script StartNotepadMenu()

; Diese Zeilen einfügen, damit Buchstaben als Kurztasten funktionieren 
if giMenus then
PerformScript FindChar(GetCurrentScriptKeyName ())
Return
EndIf 

; Neue Menüleiste erstellen 
NewXMLMenu ("Lebewesen")

; Neues Menü namens "Tiere" hinzufügen
CreateMenu ("Tiere")

; 1. Untermenü mit Haustieren
CreateMenuEntry ("Haustiere", "", "submenu", "")
; Untermenüeintrag zum Ausführen des Skripts "PlaySoundFile" mit Parameter "Dog.mp3"
CreateSubMenuEntry("Hunde", "", "script", "playsoundfile|dog.mp3")
; Untermenüeintrag zum Ausführen des Skripts "PlaySoundFile" mit Parameter "cat.mp3"
CreateSubMenuEntry("Katze", "", "script", "playsoundfile|cat.mp3")
; ggf. weitere Menüeinträge bzw. Untermenüeinträge 

; Menü anzeigen 
StartMenuLayer()
EndScript 

Script PlaySoundFile (string sFilename) 
; Befehle zum Abspielen der Sounddatei hier einfügen 
EndScript 

SaveXML (string sFilename)

Sie können erstellte Menüs mit den Menüeinträgen auch als XML-Datei auf Ihrer Festplatte speichern. So müssen Sie das Menü nicht bei jedem Aufruf eines Skripts erstellen sondern können bereits gespeicherte Menüs später von der Festplatte laden. Achtung: Eine bereits vorhandene XML-Datei wird ohne Rückfrage überschrieben!

Parameter von SaveXML:

Im folgenden Beispiel wird ein Menü mit Symbolen zum Einfügen erstellt und dieses als XML-Datei unter c:\Symbole.xml gespeichert

; ewMenus einbinden 
use "ewMenus.jsb" 

; globale Variablen 
globals 
object goXML, 
int giMenus 

; Skriptdatei 
Script CreateSymbolsMenu ()

; Diese Zeilen einfügen, damit Buchstaben als Kurztasten funktionieren 
if giMenus then
PerformScript FindChar(GetCurrentScriptKeyName ())
Return
EndIf 

; neues Menü erstellen 
NewXMLMenu ("Einfügen-Menü")

; Menü "Währung" hinzufügen 
CreateMenu ("Währung")
; Menü mit Menüeinträgen für Währung füllen 
       CreateMenuEntry ("Euro", "", "function", "TypeString|€")
       CreateMenuEntry ("Euro Cent", "", "function", "TypeString|¢")
       CreateMenuEntry ("Pfund Sterling", "", "function", "TypeString|£")
       CreateMenuEntry ("Japanischer Yen", "", "function", "TypeString|¥")
       CreateMenuEntry ("Chinesischer Yuan", "", "function", "TypeString|¥")
       CreateMenuEntry ("Dollar", "", "function", "TypeString|$")
       CreateMenuEntry ("Cent", "", "function", "TypeString|¢")
       CreateMenuEntry ("Norwegische Krone", "", "function", "TypeString|Kr")
       CreateMenuEntry ("Schweizer Franken", "", "function", "TypeString|Fr")
       CreateMenuEntry ("Südkoreanischer Won", "", "function", "TypeString|₩")
; Menü "Mathematische Symbole" hinzufügen 
CreateMenu ("Mathematische Symbole")
; Menü mit Menüeinträgen für mathematische Symbole füllen 
       CreateMenuEntry ("Neigung", "", "function", "TypeString|¬")

; weitere Menüs und Menüeinträge erstellen 

; Datei auf Festplatte speichern
SaveXML ("c:\\Symbole.xml") 
EndScript 

LoadXML (string sFilename)

Sie können die mit SaveXML erstellte XML-Datei mit LoadXML von der Festplatte laden und dann als Menü verwenden.

Parameter von LoadXML:

Im folgenden Beispiel wird die auf der Festplatte im Ordner c:\Symbole.xml gespeicherte XML-Datei mit Menüeinträgen geladen und verwendet:

; ewMenus einbinden 
use "ewMenus.jsb" 

; globale Variablen 
globals 
object goXML, 
int giMenus 

; Skriptdatei 
Script ShowSymbolsMenu ()

; Diese Zeilen einfügen, damit Buchstaben als Kurztasten funktionieren 
if giMenus then
PerformScript FindChar(GetCurrentScriptKeyName ())
Return
EndIf 

; Datei von Festplatte laden
LoadXML ("c:\\Symbole.xml") 
; Menü anzeigen 
StartMenuLayer()
EndScript 

OpenXML (string sFilename)

Nachdem Sie ein Menü mit Menüeinträgen mit SaveXML gespeichert oder mit LoadXML geladen haben, können Sie mit OpenXML die Datei zur Kontrolle in Ihrem Browser öffnen.

Parameter von OpenXML:

Im folgenden Beispiel wird ein Menü mit Symbolen zum Einfügen erstellt und dieses als XML-Datei unter c:\Symbole.xml gespeichert. Anschließend wird die Datei zur Kontrolle im Browser geöffnet:

; ewMenus einbinden 
use "ewMenus.jsb" 

; globale Variablen 
globals 
object goXML, 
int giMenus 

; Skriptdatei 
Script CreateSymbolsMenu ()

; Diese Zeilen einfügen, damit Buchstaben als Kurztasten funktionieren 
if giMenus then
PerformScript FindChar(GetCurrentScriptKeyName ())
Return
EndIf 

; neues Menü erstellen 
NewXMLMenu ("Einfügen-Menü")

; Menü "Währung" hinzufügen 
CreateMenu ("Währung")
; Menü mit Menüeinträge für Währung füllen 
       CreateMenuEntry ("Euro", "", "function", "TypeString|€")
       CreateMenuEntry ("Euro Cent", "", "function", "TypeString|¢")
       CreateMenuEntry ("Pfund Sterling", "", "function", "TypeString|£")
       CreateMenuEntry ("Japanischer Yen", "", "function", "TypeString|¥")
       CreateMenuEntry ("Chinesischer Yuan", "", "function", "TypeString|¥")
       CreateMenuEntry ("Dollar", "", "function", "TypeString|$")
       CreateMenuEntry ("Cent", "", "function", "TypeString|¢")
       CreateMenuEntry ("Norwegische Krone", "", "function", "TypeString|Kr")
       CreateMenuEntry ("Schweizer Franken", "", "function", "TypeString|Fr")
       CreateMenuEntry ("Südkoreanischer Won", "", "function", "TypeString|₩")
; Menü "Mathematische Symbole" hinzufügen 
CreateMenu ("Mathematische Symbole")
; Menü mit Menüeinträgen für mathematische Symbole füllen 
       CreateMenuEntry ("Neigung", "", "function", "TypeString|¬")

; weitere Menüs und Menüeinträge erstellen 

; Datei auf Festplatte speichern
SaveXML ("c:\\Symbole.xml")
; Warten bis die Datei gespeichert ist 
Pause ()
; Datei im Browser anzeigen 
OpenXML ("c:\\Symbole.xml") 
EndScript 

Befehle den Menüeinträgen zuordnen

Mit CreateMenuEntry und CreateSubMenuEntry können Sie lesen, wie Sie Menü-Einträge bzw. Untermenü-Einträge erstellen. In diesem Abschnitt wird nun beschrieben, welche Befehle und Parameter Ihnen in diesen Skripts zur Verfügung stehen.

mail

Der Befehl mail ermöglicht es Ihnen, dem Menüeintrag eine Mail-Adresse hinzuzufügen, sodass nach Ausführen des Menüeintrags Ihr Mail-Client gestartet wird und die angegebene Mailadresse im An-Feld eingegeben wird. Geben Sie als einzigen Parameter die Mail-Adresse des Empfängers an.

Das folgende Beispiel erstellt ein Menü mit diversen Mail-Adressen als Menüstruktur:

; ewMenus einbinden 
use "ewMenus.jsb" 

; globale Variablen 
globals 
object goXML, 
int giMenus 

; Skriptdatei 
Script StartMailMenu()

; Diese Zeilen einfügen, damit Buchstaben als Kurztasten funktionieren 
if giMenus then
PerformScript FindChar(GetCurrentScriptKeyName ())
Return
EndIf 

; Neue Menüleiste erstellen 
NewXMLMenu ("Meine Mail-Adressen")

; Neues Menü namens "Promis" hinzufügen
CreateMenu ("Promis")
      ; Einträge hinzufügen
      CreateMenuEntry ("Michael", "", "mail", "michael@jackson.de")
      CreateMenuEntry ("Arnold", "", "mail", "arnold@mister-universe.de")
      CreateMenuEntry ("Angie", "", "mail", "angela@kanzlerin.de")
; Neues Menü namens "Privat" hinzufügen
CreateMenu ("Privat")
      ; Einträge hinzufügen
      CreateMenuEntry ("Zuhause", "", "mail", "daheim@zuhause.de")
      CreateMenuEntry ("Arbeit", "", "mail", "Folter@Kammer.de")
      CreateMenuEntry ("Urlaub", "", "mail", "Ab_in_die@Freiheit.de")
; ... ggf. weitere Menüs und Menübefehle hier einfügen 

; Menü anzeigen 
StartMenuLayer()
EndScript 

mouseclick

Der Befehl mouseclick macht einen Mausklick an der angegebenen Pixel-Position. Geben Sie als Parameter die Pixel-Position von links, dann einen senkrechten Strich (|) sowie dann die Pixel-Position von oben an.

Das folgende Beispiel macht einen Mausklick an der Position 10:20 (10 Pixel von links, 20 Pixel von oben):

; ewMenus einbinden 
use "ewMenus.jsb" 

; globale Variablen 
globals 
object goXML, 
int giMenus 

; Skriptdatei 
Script StartMausklickMenu()

; Diese Zeilen einfügen, damit Buchstaben als Kurztasten funktionieren 
if giMenus then
PerformScript FindChar(GetCurrentScriptKeyName ())
Return
EndIf 

; Neue Menüleiste erstellen 
NewXMLMenu ("Maustest")

; Neues Menü namens "Positionen" hinzufügen
CreateMenu ("Positionen")
      ; Einträge hinzufügen
      CreateMenuEntry ("Klicke auf die Schaltfläche", "", "mouseclick", "10|20")

; ... ggf. weitere Menüs und Menübefehle hier einfügen 

; Menü anzeigen 
StartMenuLayer()
EndScript 

explorer

Der Befehl explorer öffnet das im Parameter angegebene Verzeichnis direkt im Windows-Explorer. Bedenken Sie, dass Sie den Backslash doppelt angeben müssen.

Das folgende Beispiel öffnet mehrere angegebene Ordner im Explorer:

; ewMenus einbinden 
use "ewMenus.jsb" 

; globale Variablen 
globals 
object goXML, 
int giMenus 

; Skriptdatei 
Script StartExplorerMenu()

; Diese Zeilen einfügen, damit Buchstaben als Kurztasten funktionieren 
if giMenus then
PerformScript FindChar(GetCurrentScriptKeyName ())
Return
EndIf 

; Neue Menüleiste erstellen 
NewXMLMenu ("Meine Ordner")

; Neues Menü namens "Dokumente" hinzufügen
CreateMenu ("Dokumente")
      ; Einträge hinzufügen
      CreateMenuEntry ("Briefe", "", "explorer", "c:\\Meine Dokumente\\Briefe\\")
      CreateMenuEntry ("Romane", "", "explorer", "c:\\Meine Dokumente\\Romane\\")
; Neues Menü namens "Bilder" hinzufügen
CreateMenu ("Bilder")
      ; Einträge hinzufügen
      CreateMenuEntry ("Wallpapers", "", "explorer", "c:\\Bilder\\Wallpaper\\")
      CreateMenuEntry ("Fotos", "", "explorer", "c:\\Bilder\\Fotos\\")

; ... ggf. weitere Menüs und Menübefehle hier einfügen 

; Menü anzeigen 
StartMenuLayer()
EndScript 

internet

Der Befehl internet öffnet die in Parameter angegebene Web-Adresse direkt in Ihrem Browser.

Das folgende Beispiel öffnet mehrere angegebene URLs im Browser:

; ewMenus einbinden 
use "ewMenus.jsb" 

; globale Variablen 
globals 
object goXML, 
int giMenus 

; Skriptdatei 
Script StartWebMenu()

; Diese Zeilen einfügen, damit Buchstaben als Kurztasten funktionieren 
if giMenus then
PerformScript FindChar(GetCurrentScriptKeyName ())
Return
EndIf 

; Neue Menüleiste erstellen 
NewXMLMenu ("Internetadressen")

; Neues Menü namens "Suchmaschinen" hinzufügen
CreateMenu ("Suchmaschinen")
      ; Einträge hinzufügen
      CreateMenuEntry ("Google", "", "internet", "https://www.google.de")
      CreateMenuEntry ("Startpage", "", "internet", "https://www.startpage.de")
; Neues Menü namens "Freedom Scientific" hinzufügen
CreateMenu ("Freedom Scientific")
      ; Einträge hinzufügen
      CreateMenuEntry ("FS Deutschland", "", "internet", "https://www.freedomsci.de")
      CreateMenuEntry ("FS Amerika", "", "internet", "https://www.freedomscientific.com")

; ... ggf. weitere Menüs und Menübefehle hier einfügen 

; Menü anzeigen 
StartMenuLayer()
EndScript 

function

Der Befehl function führt eine JAWS-Funktion aus. Geben Sie in Parameter den Namen der Funktion an. Sollte die Funktion in JAWS beim Aufruf Parameter erwarten, so erstellen Sie nach dem Namen der Funktionen einen senkrechten Strich (|) und fügen danach den Parameter ein. Sollten mehrere Parameter benötigt werden, so fügen Sie einfach diese mit weiteren senkrechten Strichen ein. Beispiel: ... "function", "NameDerFunktion|Parameter1|Parameter2|usw."

Das folgende Beispiel ist ein Auszug aus dem beigefügten Skript "StartInsertMenu" zum Einfügen von Symbolen in Text:

; ewMenus einbinden 
use "ewMenus.jsb" 

; globale Variablen 
globals 
object goXML, 
int giMenus 

; Skriptdatei 
Script StartInsertMenu ()

if giMenus then
PerformScript FindChar(GetCurrentScriptKeyName ())
Return
EndIf 

NewXMLMenu ("Einfügen-Menü")

; ... vorherige Menüs

; Menü Redezeichen erzeugen 
CreateMenu ("Redezeichen")  
       ; Menüeinträge hinzufügen      
       CreateMenuEntry ("Doppelt gewinkelte Klammer auf", "", "function", "TypeString|«")       
       CreateMenuEntry ("Doppelt gewinkelte Klammer zu", "", "function", "TypeString|»")
       CreateMenuEntry ("Primezeichen, Anführungszeichen (Minuten-Zeichen)", "", "function", "TypeString|′")
       CreateMenuEntry ("Doppel-Prime-Zeichen, Anführungszeichen (Sekunden-Zeichen)", "", "function", "TypeString|″")  

; ... weitere Menüs 

; Menü anzeigen 
StartMenuLayer()
EndScript 

script

Der Befehl script führt ein JAWS-Skript aus. Geben Sie in Parameter den Namen des Skripts an. Sollte das Skript in JAWS beim Aufruf Parameter erwarten, so erstellen Sie nach dem Namen des Skripts einen senkrechten Strich (|) und fügen danach den Parameter ein. Sollten mehrere Parameter benötigt werden, so fügen Sie einfach diese mit weiteren senkrechten Strichen ein. Beispiel: ... "script", "NameDesSkripts|Parameter1|Parameter2|usw."

Das folgende Beispiel ist ein Auszug aus dem mitgelieferten Skript StartJAWSMenu. Hierbei werden mehrere Menüeinträge erstellt, bei deren Aufruf vorhandene JAWS-Skripts ausgeführt werden:

; ewMenus einbinden 
use "ewMenus.jsb" 

; globale Variablen 
globals 
object goXML, 
int giMenus 

; Skriptdatei 
Script StartJAWSMenu ()
; Variablen-Deklarationen 
; if giMenus then ...

NewXMLMenu ("JAWS Menü")

; ... vorherige Menüs

; Menü Einstellungen generieren 
CreateMenu ("Einstellungen")
       ; Einträge hinzufügen, die weitere JAWS-Skripts aufrufen 
       CreateMenuEntry ("Anwendungseinstellungen", "Einfügen+V", "script", "AdjustBrailleOptions")
       CreateMenuEntry ("Einstellungsverwaltung", "Einfügen+6", "script", "SettingsCenter")
       CreateMenuEntry ("HTML-Einstellungen", "", "script", "AdjustHTMLSettings")

; ... weitere Menüs 

; Menü anzeigen 
StartMenuLayer()
EndScript 

notepad

Der Befehl notepad öffnet die im Parameter angegebene Datei direkt im Windows-Editor. Bedenken Sie, dass Sie den Backslash doppelt angeben müssen. So können Sie eine Text-Datei direkt im Editor öffnen, auch wenn die Dateiendung nicht mit dem Editor verknüpft ist. Zahlreiche JAWS-Dateien, wie zum Beispiel Header-Dateien (*.jsh) sowie Quellcode-Dateien (*.jss) können so zum Stöbern direkt im Windows-Editor geöffnet werden.

Das folgende Beispiel erstellt das Menü Header-Dateien mit dem Menüpunkt UIA.jsh". Wird der Menüpunkt ausgeführt, so wird die Datei UIA.jsh vom JAWS-Skriptverzeichnis zur Anzeige im Windows-Editor geöffnet:

; ewMenus einbinden 
use "ewMenus.jsb" 

; globale Variablen 
globals 
object goXML, 
int giMenus 

; Skriptdatei 
Script StartExplorerMenu()

; Diese Zeilen einfügen, damit Buchstaben als Kurztasten funktionieren 
if giMenus then
PerformScript FindChar(GetCurrentScriptKeyName ())
Return
EndIf 

; Neue Menüleiste erstellen 
NewXMLMenu ("Datei-Anzeige")

; JAWS-Skriptverzeichnis in die Variable sJAWSDiretory speichern 
var string sJAWSDirectory = GetSharedScriptsDirectory (False)
; Menü "Header-Dateien" anlegen 
CreateMenu ("Header-Dateien")
      ; Menüeintrag "UIA.jsh" hinzufügen, zum Öffnen der UIA.jsh im Editor 
      CreateMenuEntry ("UIA.jsh", "", "notepad", sJAWSDirectory + "\\UIA.jsh")

; ... ggf. weitere Menüs und Menübefehle hier einfügen 

; Menü anzeigen 
StartMenuLayer()
EndScript 

run

Der Befehl run führt das im Parameter angegebene Programm aus bzw. öffnet die im Parameter angegebene Datei. Bedenken Sie, dass der Backslash als Sonderzeichen in JAWS behandelt wird und Sie deshalb bei Pfadangaben den Backslash doppelt schreiben müssen, also \\

Das folgende Beispiel öffnet Microsoft Word und ein weiteres Programm. Hinweis: Für manche Programme ist es nicht nötig, den vollständigen Dateipfad anzugeben. Hierzu zählen u. a. die Microsoft-Programme:

; ewMenus einbinden 
use "ewMenus.jsb" 

; globale Variablen 
globals 
object goXML, 
int giMenus 

; Skriptdatei 
Script StartProgramsMenu()

; Diese Zeilen einfügen, damit Buchstaben als Kurztasten funktionieren 
if giMenus then
PerformScript FindChar(GetCurrentScriptKeyName ())
Return
EndIf 

; Neue Menüleiste erstellen 
NewXMLMenu ("Meine Programme")

; Neues Menü namens "Dokumente" hinzufügen
CreateMenu ("Microsoft")
      ; Word öffnen 
      CreateMenuEntry ("Word", "", "run", "winword.exe")
CreateMenu ("Andere Apps")
      ; Programm mit Pfad öffnen 
      CreateMenuEntry ("Mein Programm", "", "run", "c:\\Pfad\\Datei.exe")

; ... ggf. weitere Menüs und Menübefehle hier einfügen 

; Menü anzeigen 
StartMenuLayer()
EndScript 

wordmacro

Der Befehl wordmacro startet das im Parameter angegebene Word-Makro. Sie können hier sowohl eigene Makros aufrufen als auch bereits von Microsoft zur Verfügung gestellte Makros verwenden.

Das folgende Beispiel ist ein Auszug aus dem mitgelieferten Skript WordMenu. Es ruft die von Microsoft erstellten Makros FormatFont (Dialog Zeichen) sowie FormatParagraph (Dialog Absatz) auf:

; ewMenus einbinden 
use "ewMenus.jsb" 

; globale Variablen 
globals 
object goXML, 
int giMenus 

; Skriptdatei 
void Function WordMenu()

; vorhergehende Menüs und Menübefehle 

; Menü "Format" erzeugen 
CreateMenu ("Format")
  ; Menüeinträge hinzufügen 
  CreateMenuEntry ("Zeichen...", "Strg+D", "wordmacro", "FormatFont")
  CreateMenuEntry ("Absatz...", "", "wordmacro", "FormatParagraph")

; weitere Menüs und Menübefehle 

EndFunction

worddialog

Der Befehl worddialog startet den im Parameter angegebene Word-Dialog. Hierbei handelt es sich um eine Zahl, die von Microsoft genutzt wird, um einen bestimmten Dialog zu öffnen. Die Nummer 680 zum Beispiel dient zum Öffnen des Seriendruck-Dialogs. Eine Liste der möglichen Zahlenwerte finden Sie im Internet.

Das folgende Beispiel ist ein Auszug aus dem mitgelieferten Skript WordMenu. Es ruft den Dialog Autokorrektur auf, der die Dialog-Nummer 915 besitzt:

; ewMenus einbinden 
use "ewMenus.jsb" 

; globale Variablen 
globals 
object goXML, 
int giMenus 

; Skriptdatei 
void Function WordMenu()

; vorhergehende Menüs und Menübefehle 

; Menü "Format" erzeugen 
CreateMenu ("Format")
  ; Menüeinträge hinzufügen 
  CreateMenuEntry ("AutoKorrektur...", "", "worddialog", "915")

; weitere Menüs und Menübefehle 

EndFunction

Zusätzliche Infos zum Erstellen eigener Menüs

Menüs nur unter bestimmten Bedingungen erstellen

Sie können Menüs zum Beispiel nur dann erstellen lassen, wenn eine bestimmte Bedingung erfüllt ist.

Im folgenden Beispiel aus dem Skript StartJAWSMenu wird das Menü HTML nur dann erstellt, wenn ein Browser geöffnet ist:

...
var string sScript = GetScriptFileName (True)
; HTML-Menü nur anzeigen, wenn ein Browser aktiv ist 
sScript = StringLower (sScript)
If (sScript == "internet explorer.jsb") 
|| (sScript == "microsoftedge.jsb") 
|| (sScript == "chrome.jsb") 
|| (sScript == "firefox.jsb")  then
CreateMenu ("Html")
       CreateMenuEntry ("ARIA-Dialog", "", "function", "DlgAriaLiveRegionFilterText")
       CreateMenuEntry ("Linkliste", "", "function", "dlgListOfLinks")
       CreateMenuEntry ("Lesezeichen", "", "function", "DlgListOfPlaceMarkers")
EndIf ; If (sScript == "internet ...

Menüseinträge per Schleife hinzufügen

Um mehrere Menüeinträge mit einem Rutsch zu einem Menü hinzuzufügen, kann man zum Beispiel Schleifen verwenden.

Im folgenden Beispiel aus dem Skript StartJAWSMenu wird das Menü Sprachverlauf mit Einträgen gefüllt. Hierbei wird mit einer For-Schleife über die Anzahl der Sprachverlauf-Einträge jeder Einzeleintrag als Menüeintrag hinzugefügt:

var
string sSpeechHistory = GetSpeechHistory (), 
int iSpeechHistoryCount = StringSegmentCount (sSpeechHistory, "\13\10"), 
int i, 
string sTemp
...
CreateMenu ("Sprachverlauf")
for i = 1 to iSpeechHistoryCount 
sTemp = StringSegment (sSpeechHistory, "\13\10", i)
       If !(sTemp == "") then
       CreateMenuEntry (sTemp, "", "function", "CopyToClipboard|"+sTemp)
       EndIf 
EndFor 
...

Menüs aus Dateien

Sie können über den Windows Scripting Host eine Dateisuche programmieren, um Dateien als Menü darzustellen und diese zu starten.

Im folgenden Beispiel werden die Favoriten des Internet Explorers ausgelesen und in einem Menü dargestellt. Dabei dienen die Ordner-Namen als Menüs und die gefundenen Dateien als Menüeinträge. Beim Ausführen wird der die Web-Adresse im Standard-Browser geöffnet:


Script StartFavoritesMenu ()
var
; Windows-Scripting-Host-Objekt erstellen 
object oShell = CreateObject("Wscript.Shell"),
; Pfad zum Favoriten-Ordner in sPath speichern 
string sPath = oShell.SpecialFolders("Favorites"),
; File-System-Objekt erstellen 
object oFSO = CreateObject("Scripting.FileSystemObject"),
object oFolder,
; Favoriten-Pfad zuweisen 
object oFolders = oFSO.GetFolder (sPath),
object oFile,
object oFiles, 
string sFile,
string sFolder

if giMenus then
PerformScript FindChar(GetCurrentScriptKeyName ())
Return
EndIf 

; Neues Menü erstellen 
NewXMLMenu ("Lesezeichen")

Schleife über alle (Unter-)Ordner des Favoriten-Ordners
ForEach oFolder in oFolders.SubFolders
; aktueller Ordner-Namen als Menü-Namen verwenden 
CreateMenu (oFolder.Name)
; den aktuellen Ordner-Pfad in sFolder speichern 
sFolder = oFolder.Path
      ; Schleife über alle Dateien des aktuellen (Favoriten-)Ordners
      ForEach oFile in oFolder.Files
      ; aktuelle Dateinamen in sFile speichern 
      sFile = oFile.Name
      ; Menüeintrag mit dem Dateinamen als Menünamen und 
      ; dem Pfaad zum Ausführen des Favoriten erstellen 
      CreateMenuEntry (sFile, "", "run", sfolder + "\\" +sFile)
      EndForEach
EndForEach 

; Menü starten 
StartMenuLayer()
EndScript

Kontakt

Falls Sie Fehler entdecken, Fragen haben, Anregungen und Verbesserungsvorschläge loswerden wollen oder Kritik äußern möchten, können Sie dies gerne an folgende E-Mail-Adresse tun:

udo.egner-walter@web.de

Bitte bedenken Sie jedoch, dass diese Skriptsammlung von mir als Privatperson erstellt wurde und ich ggf. nur in begrenztem Umfang auf Ihre E-Mails antworten kann.